One prior nonvolatile semiconductor memory is the flash electrically erasable programmable read-only memory ("flash"). Flash memories are programmed electrically and, once programmed, retain their data until erased. After erasure, flash memories may be programmed with new code or data.
Flash memories differ from conventional electrically erasable programmable read-only memories ("EEPROM") with respect to erasure. Conventional EEPROMS typically use a select transistor for individual byte erasure control. Flash memories, on the other hand, typically achieve much higher densities using single transistor cells. Some prior flash memories are erased by applying a high voltage to the sources of every memory cell in the array simultaneously. This results in the full array erasure.
Flash memory conventions define a logical one as few, if any, electrons stored on the floating gate of a memory cell. Convention also defines a logical zero as many electrons stored on the floating gate of a memory cell. Erasure of the flash memory causes a logical one to be stored in each bit cell. Flash memory cells cannot be overwritten individually from a logical zero to a logical one without prior erasure. However, a flash memory cell can be overwritten individually from a logical one to a logical zero, because this entails simply adding electrons to a floating gate that contains the intrinsic number of electrons associated with the erased state.
The process for erasure, programming and verification of flash memories requires careful control of the voltages required to perform those steps. For example, one prior art flash memory is the 28F008 complementary metal oxide semiconductor ("CMOS") flash memory sold by Intel Corporation of Santa Clara, Calif., which is an 8 megabit flash memory. The flash memory includes a command register to manage electrical erasure and reprogramming. Commands are written for erasure from a controlling microprocessor using standard microprocessor write timings. The command register contents serve as inputs to an internal state machine that controls erasure and programming circuitry.
Typically, only one operation can be performed at a time within a flash memory. This means that high priority commands must await completion of low priority commands that were issued before the high priority command. For example, block erase commands are time consuming and fairly low priority. In contrast, program commands can be executed fairly quickly and are a higher priority than block erase commands. Nonetheless, in prior flash memories, once execution of an erase command begins execution of a program command is delayed until after complete execution of a block erase command.